Offcanvas কম্পোনেন্ট বুটস্ট্র্যাপ ৫ এর একটি চমৎকার ফিচার যা সাইড প্যানেল বা মেনু তৈরি করতে ব্যবহৃত হয়। এটি ব্যবহারকারীর স্ক্রীনে বাইরে থেকে স্লাইড করে আসতে পারে এবং অ্যানিমেশন সহ সঠিকভাবে প্রদর্শিত হয়। Offcanvas কম্পোনেন্ট ব্যবহার করে আপনি সাইড বার বা ড্রপডাউন মেনু তৈরি করতে পারেন যা এক্সপ্যান্ড এবং কোলাপস করতে পারে।
এটি মোবাইল ডিভাইসে বিশেষভাবে কার্যকর, কারণ ছোট স্ক্রীনে এটি পেজে অতিরিক্ত এলিমেন্ট রাখার পরিবর্তে স্লাইড-ইন মেনু হিসেবে কাজ করতে পারে।
বুটস্ট্র্যাপ ৫ এর Offcanvas কম্পোনেন্ট কিছু নির্দিষ্ট ইভেন্ট সরবরাহ করে যেগুলি ব্যবহারকারীর জন্য কার্যকরী হতে পারে। এগুলোর মাধ্যমে আপনি কম্পোনেন্টের বিভিন্ন ধাপে কাস্টম আচরণ নির্ধারণ করতে পারবেন।
show.bs.offcanvas
এই ইভেন্টটি তখন ট্রিগার হয় যখন offcanvas প্যানেলটি প্রদর্শিত হতে শুরু করে।
var offcanvasElement = document.getElementById('offcanvasExample');
offcanvasElement.addEventListener('show.bs.offcanvas', function () {
console.log('Offcanvas is about to be shown.');
});
shown.bs.offcanvas
এই ইভেন্টটি তখন ট্রিগার হয় যখন offcanvas প্যানেলটি সম্পূর্ণভাবে প্রদর্শিত হয়।
var offcanvasElement = document.getElementById('offcanvasExample');
offcanvasElement.addEventListener('shown.bs.offcanvas', function () {
console.log('Offcanvas is fully shown.');
});
hide.bs.offcanvas
এই ইভেন্টটি তখন ট্রিগার হয় যখন offcanvas প্যানেলটি লুকানোর প্রক্রিয়া শুরু হয়।
var offcanvasElement = document.getElementById('offcanvasExample');
offcanvasElement.addEventListener('hide.bs.offcanvas', function () {
console.log('Offcanvas is about to be hidden.');
});
hidden.bs.offcanvas
এই ইভেন্টটি তখন ট্রিগার হয় যখন offcanvas প্যানেলটি সম্পূর্ণভাবে লুকিয়ে যায়।
var offcanvasElement = document.getElementById('offcanvasExample');
offcanvasElement.addEventListener('hidden.bs.offcanvas', function () {
console.log('Offcanvas is fully hidden.');
});
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasExample" aria-controls="offcanvasExample">
Open Offcanvas
</button>
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvasExample" aria-labelledby="offcanvasExampleLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasExampleLabel">Offcanvas Title</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<p>This is an offcanvas element. You can add any content here.</p>
</div>
</div>
<script>
var offcanvasElement = document.getElementById('offcanvasExample');
offcanvasElement.addEventListener('show.bs.offcanvas', function () {
console.log('Offcanvas is about to be shown.');
});
offcanvasElement.addEventListener('shown.bs.offcanvas', function () {
console.log('Offcanvas is fully shown.');
});
offcanvasElement.addEventListener('hide.bs.offcanvas', function () {
console.log('Offcanvas is about to be hidden.');
});
offcanvasElement.addEventListener('hidden.bs.offcanvas', function () {
console.log('Offcanvas is fully hidden.');
});
</script>
Offcanvas প্যানেলটি একটি স্লাইড-ইন/আউট অ্যানিমেশন দিয়ে প্রদর্শিত হয়, যা অত্যন্ত ইউজার ফ্রেন্ডলি। এই অ্যানিমেশনটি বুটস্ট্র্যাপের ডিফল্ট ব্যবহারকারীর অভিজ্ঞতার অংশ এবং সহজেই কাস্টমাইজ করা যায়।
বুটস্ট্র্যাপের offcanvas কম্পোনেন্টের জন্য কিছু ডিফল্ট অ্যানিমেশন রয়েছে, যা প্যানেলটি স্ক্রীনের বাইরে থেকে স্লাইড করে আসে এবং বের হয়ে যায়। এই অ্যানিমেশনগুলি সিএসএস transition
প্রপার্টি ব্যবহার করে অর্জিত হয়।
আপনি চাইলে CSS দিয়ে কাস্টম অ্যানিমেশন যোগ করতে পারেন।
<style>
.offcanvas-start {
transition: transform 0.5s ease-in-out;
}
.offcanvas-start.show {
transform: translateX(0);
}
.offcanvas-start:not(.show) {
transform: translateX(-100%);
}
</style>
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasExample" aria-controls="offcanvasExample">
Open Offcanvas
</button>
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvasExample" aria-labelledby="offcanvasExampleLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasExampleLabel">Offcanvas Title</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<p>This is an offcanvas element with custom animation.</p>
</div>
</div>
এখানে, transition
প্রপার্টি ব্যবহার করা হয়েছে যা অ্যানিমেশনকে আরও স্মুথ এবং কাস্টমাইজযোগ্য করে।